﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using UtilityExtensions;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.OleDb;
using UtilityExtensions;
using System.Configuration;

namespace BOL
{
    public class ExcelBL
    {
        //public List<SALDOS2011> importExcel()
        //{

        //    string archivo = @"C:\Desarrollo Web\cagaSALDO.xlsx";

        //    Microsoft.Office.Interop.Excel.Application xlsApp = new Microsoft.Office.Interop.Excel.Application();
        //    Microsoft.Office.Interop.Excel.Workbook wbPresupuesto;
        //    Microsoft.Office.Interop.Excel.Worksheet wsPresupuesto;



        //    if (!File.Exists(archivo))
        //    {
        //        throw new Exception("No existe el archivo:{0}".Fmt("--"));
        //    }


        //    bool FinArchivo = false;
        //    int numeroCelda = 1;
        //    int condadorVacio = 1;
        //    int cursor = 1;
        //    string celdaValor = "";
        //    try
        //    {

        //        wbPresupuesto = xlsApp.Workbooks.Open(archivo);
        //        wsPresupuesto = (Microsoft.Office.Interop.Excel.Worksheet)wbPresupuesto.ActiveSheet;

        //        List<SALDOS2011> listaInfo = new List<SALDOS2011>();

        //        while (!FinArchivo)
        //        {
        //            cursor++;
        //            celdaValor = this.ReadCelda(ref wsPresupuesto, "C" + cursor);
        //            numeroCelda++;
        //            SALDOS2011 info;

        //            if (celdaValor.Length > 0)
        //            {

        //                info = new SALDOS2011();
        //                info.idAlmacen= this.ReadCelda(ref wsPresupuesto, "A" + cursor).ToInt();
        //                info.codigo = this.ReadCelda(ref wsPresupuesto, "B" + cursor);
        //                info.descripcion = this.ReadCelda(ref wsPresupuesto, "C" + cursor);
        //                info.unidad = this.ReadCelda(ref wsPresupuesto, "D" + cursor);

        //                decimal precioList = 0;

        //                decimal.TryParse(this.ReadCelda(ref wsPresupuesto, "F" + cursor),
        //                                        out precioList);
        //                info.precio = precioList;

        //                decimal cantidad = 0;
        //                decimal.TryParse(this.ReadCelda(ref wsPresupuesto, "E" + cursor),
        //                                        out cantidad);
        //                info.cantidad= cantidad;

        //                listaInfo.Add(info);
        //            }
        //            if (celdaValor == "")
        //            {
        //                condadorVacio++;
        //            }
        //            if (condadorVacio == 15)
        //                break;
        //        }
        //        return listaInfo;
        //    }

        //    catch (Exception ex)
        //    {
        //        //errores de carga
        //        xlsApp.ActiveWorkbook.Close(true, archivo, Type.Missing);
        //        throw new Exception(ex.Message + "Ruta:" + archivo + "celda:" + celdaValor);
        //    }
        //    finally
        //    {
        //        xlsApp.ActiveWorkbook.Close(true, archivo, Type.Missing);
        //        xlsApp.Quit();
        //        xlsApp = null;
        //    }
        //}

        public void importExcelNacionalidad()
        {

            string archivo = @"C:\Users\Public\Documents\Empresa EOM\Nacionalidades.xlsx";

            Microsoft.Office.Interop.Excel.Application xlsApp = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook wbPresupuesto;
            Microsoft.Office.Interop.Excel.Worksheet wsPresupuesto;



            if (!File.Exists(archivo))
            {
                throw new Exception("No existe el archivo:{0}".Fmt("--"));
            }


            bool FinArchivo = false;
            int numeroCelda = 1;
            int condadorVacio = 1;
            int cursor = 1;
            string celdaValor = "";
            try
            {

                wbPresupuesto = xlsApp.Workbooks.Open(archivo);
                wsPresupuesto = (Microsoft.Office.Interop.Excel.Worksheet)wbPresupuesto.ActiveSheet;

                List<Nacionalidad> listaInfo = new List<Nacionalidad>();

                while (!FinArchivo)
                {
                    cursor++;
                    celdaValor = this.ReadCelda(ref wsPresupuesto, "A" + cursor);
                    numeroCelda++;
                    Nacionalidad info;

                    if (celdaValor.Length > 0)
                    {

                        info = new Nacionalidad();
                        
                        info.descripcion = this.ReadCelda(ref wsPresupuesto, "A" + cursor);
                       
                        
                        listaInfo.Add(info);
                    }
                    if (celdaValor == "")
                    {
                        condadorVacio++;
                    }
                    if (condadorVacio == 15)
                        break;
                }

                DbUtil.Db.Nacionalidads.InsertAllOnSubmit(listaInfo);
                DbUtil.Db.SubmitChanges();
            }

            catch (Exception ex)
            {
                //errores de carga
                xlsApp.ActiveWorkbook.Close(true, archivo, Type.Missing);
                throw new Exception(ex.Message + "Ruta:" + archivo + "celda:" + celdaValor);
            }
            finally
            {
                xlsApp.ActiveWorkbook.Close(true, archivo, Type.Missing);
                xlsApp.Quit();
                xlsApp = null;
            }
        }

        private string ReadCelda(ref Microsoft.Office.Interop.Excel.Worksheet sheet, string cell)
        {
            Microsoft.Office.Interop.Excel.Range range = sheet.get_Range(cell, cell);
            if (range.Value2 != null)
                return range.Value2.ToString();
            else
                return "";
        }

    }
}
